/**
 * Copyright(c) Hainan eKing Technology co., LTD
 *
 * @date 2013年9月11日
 * 	
 * Original Author: 郑兴(zhengxing)
 *
 * ChangeLog
 *
 */
package com.hnas.sys.dao;

import java.util.List;

import com.hnas.core.dao.BaseDao;
import com.hnas.sys.orm.User;

/**
 * @author 郑兴(zhengxing)
 *
 */
public interface UserDAO extends BaseDao<User> {
	/**
	 * <pre>根据用户名查询用户</pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月11日 上午10:31:17
	 * @param userName
	 * @return
	 */
	public User findByUserName(String userName);
	
	/**
	 * <pre>加载所有用户</pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月11日 下午4:43:15
	 * @return
	 */
	public List<User> loadAll();
	/**
	 * 
	 * <pre>
	 * 根据账户查询用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param account
	 * @return User
	 */
	public User getUserByAccount(String account);
	/**
	 * <pre>
	 * 取得具有管理权限角色的用户。
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @return
	 * List<User>
	 */
//	public List<User> getUserWithRoleAdmin();
	
	/**
	 * <pre>
	 * 根据账户和角色查询用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @param account
	 * @param role
	 * @return
	 * List<User>
	 */
	public List<User> getUserWithRole(String account, String roleCode);
	
//	/**
//	 * <pre>
//	 * 取得所有管理员。(管理员、协议管理员、系统管理员。)
//	 * </pre>
//	 * @auther 许亚明（yam-xu）
//	 * 2013-9-25
//	 * @param account
//	 * @return
//	 * List<User>
//	 */
//	public List<User> getUserWithManagerRole(String account);
	public List<User> getUsersWithRole(String roleName);
	
	public List<User> getUserByAgencyid(long Agencyid);
}
